Design-by-contract for software architectures
نویسنده
چکیده
We propose a design by contract (DbC) approach to specify and maintain architectural level properties of software. Such properties are typically relevant in the design phase of the development cycle but may also impact the execution of systems. We give a formal framework for specifying software architectures (and their refinements) together with contracts that architectural configurations abide by. In our framework, we can specify that if an architecture guarantees a given precondition and a refinement rule satisfies a given contract, then the refined architecture will enjoy a given post-condition. Methodologically, we take Architectural Design Rewriting (ADR) as our architectural description language. ADR is a rule-based formal framework for modelling (the evolution of) software architectures. We equip the reconfiguration rules of an ADR architecture with preand post-conditions expressed in a simple logic; a pre-condition constrains the applicability of a rule while a post-condition specifies the properties expected of the resulting graphs. We give an algorithm to compute the weakest precondition out of a rule and its post-condition. Furthermore, we propose a monitoring mechanism for recording the evolution of systems after certain computations, maintaining the history in a tree-like structure. The hierarchical nature of ADR allows us to take full advantage of the tree-like structure of the monitoring mechanism. We exploit this mechanism to formally define new rewriting mechanisms for ADR reconfiguration rules. Also, by monitoring the evolution we propose a way of identifying which part of a system has been affected when unexpected run-time behaviours emerge. Moreover, we propose a methodology that allows us to select which rules can be applied at the architectural level to reconfigure a system so to regain its architectural style when it becomes compromised by unexpected run-time reconfigurations. Acknowledgements Wow, what a journey and so many people I have to thank. With no hesitation, the first person to thank is Emilio Tuosto. It has been such a rewarding experience to be supervised by someone so inspirational and hard working. This PhD trip has been designed-by-contract and the weakest pre-condition to my successful thesis submission has been your invaluable help both as a supervisor but also as a friend. Formally, given a production p = PhD Trip and a post-condition φ = Success, the weakest pre-condition computed is W (p, φ) = Emilio for Supervisor. Thank you so much! I am also extremely grateful to the help and guidance of Reiko Heckel whose great experience and wide background made our conversations and yearly vivas so interesting. Despite his very busy schedule he was always available whenever I required his assistance. I would also like to thank my examiners Andrew Fish and Stephan ReiffMarganiec for their amazing suggestions and for the ultra long viva discussions we had. A huge thank you to everyone in the Department of Computer Science here at the University of Leicester, thanks for making this place feel so like home. I can honestly say every single person in here provided me with assistance, advice, friendship and some incredibly good times during my studies. Thanks especially to Artur Boronat, Stuart Kerrigan, Daniela Petrisan, Igor Razgon, Stephan Reiff-Marganiec, Tom Ridge, and Emilio Tuosto who I worked with as a teaching assistant and for being so friendly and understanding during the busy periods of my research. I would also like to thank my fellow GTAs and PhD colleagues here in Leicester who might not know it but affected my life in so many positive ways. I will fondly remember (and in some cases try to forget) our great parties, the Wimbledon final, our amazing Friday nights for which I missed most of my Saturdays, and their great support especially during this tough sleepless writing up period. Special thanks should go to Julien Lange for being the best PhD brother I could have hoped for. You are i the best bro! Abdulla Al Sokkar for being a generally chilled-out guy, Gabriela and Octavian for being so supportive during the hard writing up period, Stelios for being such a great neighbour, and also Andrea Vandin, and Alceste Scalas whose visit here in Leicester was brief but enough to set the pillars for the new revolutionary BEER conference. The continuous support and encouragement from all my good friends back home kept me going through some tough and frustrating times, and I would very much like to acknowledge Skevi, Stalo, Xenia, John(s), Nearchos, Peter, Prokopis, and Stavros. A souvla is in order guys. To my parents and grandmother back in Cyprus, I would like to say thank you, thank you, thank you sooo much! You definitely deserve this more than I do. To Andreas, my brother thank you for being my best friend in both the ups and the downs of my entire life. Finally, and most importantly, I would like to thank Demetria. Her incredible patience, support, encouragement, and unwavering love were the solid foundations the past few years of my life have been built on. You were the fuel that kept me going.
منابع مشابه
Managing Unanticipated Evolution of Software Architectures
Few existing approaches towards architectural evolution deal with unanticipated evolution. This is an important restriction, since a lot of architectural changes are very di cult to anticipate. The reuse contract formalism has been designed speci cally to deal with unanticipated software evolution, and has already proven its practical use in di erent domains. We claim that the reuse contract ap...
متن کاملTowards a Design-by-contract based Approach for Realizable Connector-centric Software Architectures
Despite being a widely-used language for specifying software systems, UML remains less than ideal for software architectures. Architecture description languages (ADLs) were developed to provide more comprehensive support. However, so far the application of ADLs in practice has been impeded by at least one of the following problems: (i) advanced formal notations, (ii) lack of support for complex...
متن کاملXCD – Simple, Modular, Formal Software Architectures
Connector-Centric Design (XCD) is a new approach for specifying software architectures that focuses on the use of complex connectors. In XCD simple interconnection mechanisms like procedure-calls, event-buses, etc. are abstracted and components take a second place. XCD aids the clear separation in a modular manner of the highlevel functional, interaction, and control system behaviour, thus incr...
متن کاملReuse by Contract
Reuse by contract is the application of formal methods to software reuse: software components are associated with contracts|formal models of their functional behaviour|and administered , retrieved, and reused by these. We argue that reuse by contract is necessary for safe reuse in a formal process model, but is helpful even for more traditional software development. We discuss some obstacles ag...
متن کاملTrust-by-Contract: Modelling, Analysing and Predicting Behaviour of Software Architectures
Architecture description languages (ADLs) are used to specify high-level, compositional views of a software application. ADL research focuses on software composed of prefabricated parts, socalled software components. ADLs usually come equipped with rigorous state-transition style semantics, facilitating verification and analysis of specifications. Consequently, ADLs are well suited to configuri...
متن کاملModeling Services using Contracts Identifying Dependencies in Service–Oriented Architectures
Design by contract is a well-established paradigm in software engineering. Bertrand Meyer first introduced the rigorous distinction between the responsibilities of service provider and service consumer for fine grain software artifacts (classes). This paper considers service contracts in the context of service-oriented architecture for complex enterprise information infrastructures. Identifying...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2014